Expand the repeat node test
authorMatthias Clasen <mclasen@redhat.com>
Sun, 8 Oct 2017 17:49:59 +0000 (13:49 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 8 Oct 2017 17:50:41 +0000 (13:50 -0400)
Still not exhaustive, but enough to find some issues.

testsuite/gsk/repeat.node
testsuite/gsk/repeat.png
testsuite/gsk/test-render-nodes.c

index 3b57cf220326903a21af806d36de178b37a33035..9595ee0c53562989ccd954d9d5e8a3cfb7ac6e7e 100644 (file)
Binary files a/testsuite/gsk/repeat.node and b/testsuite/gsk/repeat.node differ
index a587cf91bf5f7450ee5111ff606605319d02e2f3..065e6ff95b56c0cee8d1f3500633824aea2117ac 100644 (file)
Binary files a/testsuite/gsk/repeat.png and b/testsuite/gsk/repeat.png differ
index 166823991930ce2e43daf99d295d44837e35a533..f39f725540866ec1740c85b5711ceae31bbd9801 100644 (file)
@@ -157,18 +157,52 @@ cairo (void)
 static GskRenderNode *
 repeat (void)
 {
-  GskRenderNode *repeat;
+  GskRenderNode *repeat[4];
   GskRenderNode *child;
+  GskRenderNode *transform;
+  GskRenderNode *container;
+  graphene_matrix_t matrix;
 
   child = cairo ();
 
-  repeat = gsk_repeat_node_new (&GRAPHENE_RECT_INIT (0, 0, 200, 200),
-                                child,
-                                &GRAPHENE_RECT_INIT (0, 0, 200, 600));
+  repeat[0] = gsk_repeat_node_new (&GRAPHENE_RECT_INIT (0, 0, 200, 200),
+                                   child,
+                                   &GRAPHENE_RECT_INIT (0, 0, 200, 600));
+  repeat[1] = gsk_repeat_node_new (&GRAPHENE_RECT_INIT (0, 200, 200, 200),
+                                   child,
+                                   &GRAPHENE_RECT_INIT (0, 0, 200, 600));
+  repeat[2] = gsk_repeat_node_new (&GRAPHENE_RECT_INIT (0, 400, 200, 200),
+                                   child,
+                                   &GRAPHENE_RECT_INIT (0, 0, 200, 600));
+  repeat[3] = gsk_repeat_node_new (&GRAPHENE_RECT_INIT (0, 100, 200, 640),
+                                   child,
+                                   &GRAPHENE_RECT_INIT (0, 100, 200, 400));
 
   gsk_render_node_unref (child);
 
-  return repeat;
+  graphene_matrix_init_translate (&matrix, &(const graphene_point3d_t) { 0, 20, 0 });
+  transform = gsk_transform_node_new (repeat[1], &matrix);
+  gsk_render_node_unref (repeat[1]);
+  repeat[1] = transform;
+
+  graphene_matrix_init_translate (&matrix, &(const graphene_point3d_t) { 0, 40, 0 });
+  transform = gsk_transform_node_new (repeat[2], &matrix);
+  gsk_render_node_unref (repeat[2]);
+  repeat[2] = transform;
+
+  graphene_matrix_init_translate (&matrix, &(const graphene_point3d_t) { 220, -100, 0 });
+  transform = gsk_transform_node_new (repeat[3], &matrix);
+  gsk_render_node_unref (repeat[3]);
+  repeat[3] = transform;
+
+  container = gsk_container_node_new (repeat, 4);
+
+  gsk_render_node_unref (repeat[0]);
+  gsk_render_node_unref (repeat[1]);
+  gsk_render_node_unref (repeat[2]);
+  gsk_render_node_unref (repeat[3]);
+
+  return container;
 }
 
 static const struct {